home *** CD-ROM | disk | FTP | other *** search
- # basewin.py
-
- import stdwin
- import mainloop
- from stdwinevents import *
-
- class BaseWindow:
-
- def __init__(self, title):
- self.win = stdwin.open(title)
- self.win.dispatch = self.dispatch
- mainloop.register(self.win)
-
- # def reopen(self):
- # title = self.win.gettitle()
- # winpos = self.win.getwinpos()
- # winsize = self.win.getwinsize()
- # origin = self.win.getorigin()
- # docsize = self.win.getdocsize()
- # mainloop.unregister(self.win)
- # del self.win.dispatch
- # self.win.close()
- # stdwin.setdefwinpos(winpos)
- # stdwin.setdefwinsize(winsize)
- # self.win = stdwin.open(title)
- # stdwin.setdefwinpos(0, 0)
- # stdwin.setdefwinsize(0, 0)
- # self.win.setdocsize(docsize)
- # self.win.setorigin(origin)
- # self.win.dispatch = self.dispatch
- # mainloop.register(self.win)
-
- def popup(self):
- if self.win is not stdwin.getactive():
- self.win.setactive()
-
- def close(self):
- mainloop.unregister(self.win)
- del self.win.dispatch
- self.win.close()
-
- def dispatch(self, event):
- type, win, detail = event
- if type == WE_CHAR:
- self.char(detail)
- elif type == WE_COMMAND:
- self.command(detail)
- elif type == WE_MOUSE_DOWN:
- self.mouse_down(detail)
- elif type == WE_MOUSE_MOVE:
- self.mouse_move(detail)
- elif type == WE_MOUSE_UP:
- self.mouse_up(detail)
- elif type == WE_DRAW:
- self.draw(detail)
- elif type == WE_CLOSE:
- self.close()
-
- def no_op(self, detail):
- pass
- char = command = mouse_down = mouse_move = mouse_up = draw = no_op
-
- def refreshall(self):
- self.win.change((-10, 0), (10000, 30000))
-